package com.leetcode.蓝桥杯.十二届国赛;

import java.util.Scanner;

/**
 * 题目描述
小蓝发现了一个有趣的数列，这个数列的前几项如下:1,1,2,1,2,3,1,2,3,4,·..
小蓝发现，这个数列前1项是整数1，接下来2项是整数1至2，接下来3项是整数1至3，接下来4项是整数1至4，依次类推。
小蓝想知道，这个数列中，连续一段的和是多少。
输入描述
输入的第一行包含一个整数T，表示询问的个数。
接下来T行，每行包含一组询问，其中第i行包含两个整数l和ri，表示询问数列中第l个数到第r;个数的和。

 * @author LZF
 *
 */
public class 编程题6 {
	
	
	public static void main(String[] args) {
		Scanner cin = new Scanner(System.in);
		long T = cin.nextLong();
		while ((T--) != 0) {
			long l = cin.nextLong(), r = cin.nextLong();
			System.out.println(calc(r) - calc(l - 1));
		}
	}
	private static long F(long x) {
        return x * (x + 1) * (x + 2) / 6;
    }

    private static long calc(long x) {
        long l = 0, r = 2000000, res = 0;
        //二分法求x是b数组的第几项，用res表示
        while (l <= r) {
            long mid = l + r >> 1;
            if ((mid + 1) * mid / 2 <= x) {
                l = (mid + 1);
                res = mid;
            } else {
                r = (mid - 1);
            }
        }
        //随后，剩下cha项
        long cha = x - (res + 1) * res / 2;
        return F(res) + (cha + 1) * cha / 2;
    }
    
    
}
	
